package com.marvels.approve.credit.consum;

import java.util.List;
import java.util.Map;

import com.marvels.approve.credit.dto.IntBankBanruDetailDTO;
import com.marvels.approve.credit.dto.IntBankBasiInfoCollectionDTO;
import com.marvels.approve.credit.dto.IntBankBasicDTO;
import com.marvels.approve.credit.dto.IntBankCreditCardDTO;
import com.marvels.approve.credit.dto.IntBankCreditPaymentRecordsDTO;
import com.marvels.approve.credit.dto.IntBankCredittipsDTO;
import com.marvels.approve.credit.dto.IntBankDwellmessageDTO;
import com.marvels.approve.credit.dto.IntBankEndowmentInsuranceDTO;
import com.marvels.approve.credit.dto.IntBankGuaranteeCountDTO;
import com.marvels.approve.credit.dto.IntBankLogDTO;
import com.marvels.approve.credit.dto.IntBankNotCredittipsDTO;
import com.marvels.approve.credit.dto.IntBankNotPinshouseholdsDTO;
import com.marvels.approve.credit.dto.IntBankNotQuasiCreditDTO;
import com.marvels.approve.credit.dto.IntBankPositionmesageDTO;
import com.marvels.approve.credit.dto.IntBankQueryDetailDTO;
import com.marvels.approve.credit.dto.IntBankQuerySummaryDTO;
import com.marvels.approve.credit.dto.IntBankStandardCreditCardDTO;
import com.marvels.approve.credit.dto.IntDataQueryLogDTO;
import com.marvels.common.dto.MarvelsResultDTO;

public interface ConsumerExternalIntBankApi {
	
	public List<Map<String,Object>> selectAll(Map<String,String> msg);
	
	public int insertDataLog(IntDataQueryLogDTO IntDataQueryLog);
	
	public List<IntDataQueryLogDTO> intDataQueryLogLoanId(Map<String,String> msg);
	
	
	/**
	 * 核心服务submitState方法处的所有数据
	 * 
	 * @param map
	 * @return
	 */
	public IntBankBasiInfoCollectionDTO getMarvelsCreditReportData(Map<String,String> map);

	/**
	 * 贷款记录
	 * 
	 * @param map
	 * @return
	 */
	public Map<String, Object> intBankCreditPaymentRecords(Map<String,String> map);

	/**
	 * 贷记卡信息
	 * 
	 * @param map
	 * @return
	 */
	public Map<String, Object> intBankCreditCard(Map<String,String> map);

	/**
	 * 准贷记卡数据
	 * 
	 * @param map
	 * @return
	 */
	public List<IntBankStandardCreditCardDTO> intBankStandardCreditCard(Map<String,String> map);

	/**
	 * 公共信息明细
	 * 
	 * @param map
	 * @return
	 */
	public List<IntBankEndowmentInsuranceDTO> intBankEndowmentInsurance(Map<String,String> map);

	/**
	 * 信息摘要部分
	 * 
	 * @param map
	 * @return
	 */
	public Map<String, Object> summaryInformationData(Map<String,String> map);

	/**
	 * 信息摘要5部分
	 * 
	 * @param map
	 * @return
	 */
	public List<IntBankGuaranteeCountDTO> intBankGuaranteeCount(Map<String,String> map);

	/**
	 * 添加准贷记卡信息详细
	 * 
	 * @param intBankStandardCreditCard
	 * @return
	 */
	public int saveIntBankStandardCreditCard(IntBankStandardCreditCardDTO intBankStandardCreditCard);

	/**
	 * 添加 养老保险金数据
	 * 
	 * @param intBankStandardCreditCard
	 * @return
	 */
	public int saveIntBankEndowmentInsurance(IntBankEndowmentInsuranceDTO intBankEndowmentInsurance);

	/**
	 * 更新养老保险金数据
	 * 
	 * @param intBankEndowmentInsurance
	 * @return
	 */
	public int updateIntBankEndowmentInsurance(IntBankEndowmentInsuranceDTO intBankEndowmentInsurance);

	

	/**
	 * 更新未销户准贷记卡信息
	 * 
	 * @param intBankNotQuasiCredit
	 * @return
	 */
	public int updateIntBankNotQuasiCredit(IntBankNotQuasiCreditDTO intBankNotQuasiCredit);

	/**
	 * 未结清贷款信息汇总更新
	 * 
	 * @param intBankEndowmentInsurance
	 * @return
	 */
	public int updateIntBankNotCredittips(IntBankNotCredittipsDTO intBankNotCredittips);

	/**
	 * 未结清贷款信息汇总信息保存
	 * 
	 * @param intBankNotQuasiCredit
	 * @return
	 */
	public int saveIntBankNotCredittips(IntBankNotCredittipsDTO intBankNotCredittips);

	/**
	 * 对外贷款担保信息汇总更新
	 * 
	 * @param intBankEndowmentInsurance
	 * @return
	 */
	public int updateIntBankGuaranteeCount(IntBankGuaranteeCountDTO intBankGuaranteeCount);

	

	/**
	 * 未销户贷记卡信息汇总更新
	 * 
	 * @param intBankEndowmentInsurance
	 * @return
	 */
	public int updateIntBankNotPinshouseholds(IntBankNotPinshouseholdsDTO intBankNotPinshouseholds);

	/**
	 * 未销户贷记卡信息汇总保存
	 * 
	 * @param intBankNotQuasiCredit
	 * @return
	 */
	public int saveIntBankNotPinshouseholds(IntBankNotPinshouseholdsDTO intBankNotPinshouseholds);

	/**
	 * 贷款信息明细更新
	 * 
	 * @param intBankCreditPaymentRecords
	 * @return
	 */
	public int updateIntBankCreditPaymentRecords(IntBankCreditPaymentRecordsDTO intBankCreditPaymentRecords);

	

	/**
	 * 根据loanId查询贷记卡信息
	 * 
	 * @param map
	 * @return
	 */
	public List<IntBankCreditCardDTO> intBankCreditCardLoanId(Map<String, String> map);

	/**
	 * 贷记卡信息详细更新
	 * 
	 * @param intBankCreditPaymentRecords
	 * @return
	 */
	public int updateIntBankCreditCard(IntBankCreditCardDTO intBankCreditCard);

	/**
	 * 贷记卡信息详细保存
	 * 
	 * @param intBankCreditPaymentRecords
	 * @return
	 */
	public int saveIntBankCreditCard(IntBankCreditCardDTO intBankCreditCard);

	/**
	 * addQueryDetail位置的数据信息
	 * 
	 * @param map
	 * @return
	 */
	public Map<String, Object> addQueryDetailPositionData(Map<String, String> map);

	/**
	 * 保存本人查询记录明细
	 * 
	 * @param map
	 * @return
	 */
	public int saveIntBankBanruDetail(IntBankBanruDetailDTO intBankBanruDetail);

	/**
	 * 保存本人查询记录明细
	 * 
	 * @param map
	 * @return
	 */
	public int updateIntBankBanruDetail(IntBankBanruDetailDTO intBankBanruDetail);

	/**
	 * 查询本人查询记录明细
	 * 
	 * @param map
	 * @return
	 */
	public List<IntBankBanruDetailDTO> intBankBanruDetail(Map<String,String> map);

	/**
	 * 删除查询记录汇总
	 * 
	 * @param id
	 * @return
	 */
	public int deleteIntBankQuerySummary(long id);

	/**
	 * 保存记录汇总
	 * 
	 * @param id
	 * @return
	 */
	public int saveIntBankQuerySummary(IntBankQuerySummaryDTO intBankQuerySummary);

	/**
	 * 更新记录汇总
	 * 
	 * @param id
	 * @return
	 */
	public int updateIntBankQuerySummary(IntBankQuerySummaryDTO intBankQuerySummary);

	/**
	 * 删除本人查询记录明细
	 * 
	 * @param id
	 * @return
	 */
	public int deleteIntBankBanruDetail(long id);

	/**
	 * 保存个人基本信息(银行征信数据)
	 * 
	 * @return
	 */
	public int saveIntBankBasic(IntBankBasicDTO intBankBasic);

	/**
	 * 更新个人基本信息(银行征信数据)
	 * 
	 * @return
	 */
	public int updateIntBankBasic(IntBankBasicDTO intBankBasic);

	/**
	 * 查询个人基本信息(银行征信数据)
	 * 
	 * @param map
	 * @return
	 */
	public List<IntBankBasicDTO> intBankBasic(Map<String,String> map);

	/**
	 * 保存信用提示
	 * 
	 * @return
	 */
	public int saveIntBankCredittips(IntBankCredittipsDTO intBankCredittips);

	/**
	 * 更新信用提示
	 * 
	 * @return
	 */
	public int updateIntBankCredittips(IntBankCredittipsDTO intBankCredittips);

	/**
	 * 查询信用提示
	 * 
	 * @param map
	 * @return
	 */
	public List<IntBankCredittipsDTO> intBankCredittips(Map<String, String> map);

	/**
	 * 保存个人基本信息(职业信息)
	 * 
	 * @return
	 */
	public int saveIntBankPositionmesage(IntBankPositionmesageDTO intBankPositionmesage);

	/**
	 * 更新保存记录明细
	 * 
	 * @param intBankQueryDetail
	 * @return
	 */
	public int updateIntBankQueryDetail(IntBankQueryDetailDTO intBankQueryDetail);

	/**
	 * 更新个人基本信息(职业信息)
	 * 
	 * @return
	 */
	public int updateIntBankPositionmesage(IntBankPositionmesageDTO intBankPositionmesage);

	/**
	 * 查询个人基本信息(职业信息)
	 * 
	 * @param map
	 * @return
	 */
	public List<IntBankPositionmesageDTO> intBankPositionmesage(Map<String,String> map);

	/**
	 * 更新准贷记卡信息详细
	 * 
	 * @param intBankStandardCreditCard
	 * @return
	 */
	public int updateIntBankStandardCreditCard(IntBankStandardCreditCardDTO intBankStandardCreditCard);

	/**
	 * 保存居住信息
	 * 
	 * @return
	 */
	public int saveIntBankDwellmessage(IntBankDwellmessageDTO intBankDwellmessage);

	/**
	 * 更新居住信息
	 * 
	 * @return
	 */
	public int updateIntBankDwellmessage(IntBankDwellmessageDTO intBankDwellmessage);

	/**
	 * 查询居住信息
	 * 
	 * @param map
	 * @return
	 */
	public List<IntBankDwellmessageDTO> intBankDwellmessage(Map<String,String> map);

	/**
	 * 添加识别表记录
	 * 
	 * @param intBankLog
	 * @return
	 */
	public int insertIntBankLog(IntBankLogDTO intBankLog);

	public Map<String, Object> viewRiskInfoPositionData(Map<String, String> map);

	public int saveIntBankQueryDetail(IntBankQueryDetailDTO intBankQueryDetail);

	public int deleteIntBankQueryDetail(long id);

	/**
	 * 查询记录汇总
	 * 
	 * @param map
	 * @return
	 */
	public List<IntBankQuerySummaryDTO> intBankQuerySummary(Map<String,String> map);

	/**
	 * 贷款信息明细
	 * 
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>> detailsOfLoanInformation(Map<String, String> map);

	/**
	 * 征信报告审核-个人基本信息保存
	 * @param intBankBasic
	 * @return
	 */
	public IntBankBasicDTO saveMarvelsIntBankBasic(IntBankBasicDTO intBankBasic);
	
	/**
	 * 新核心
	 * 保存居住信息
	 * 返回更新后的居住信息
	 * @param intBankDwellmessage
	 * @return
	 */
	public IntBankDwellmessageDTO saveMarvelsIntBankDwellmessage(IntBankDwellmessageDTO intBankDwellmessage);
	
	/**
	 * 新核心
	 * 保存职业信息
	 * 返回更新后的职业信息
	 * @param intBankPositionmesage
	 * @return
	 */
	public IntBankPositionmesageDTO saveMarvelsIntBankPositionmesage(IntBankPositionmesageDTO intBankPositionmesage);
	
	/**
	 * 征信报告审核
	 * 信息概要-信用提示保存
	 * @param intBankCredittips
	 * @return
	 */
	public IntBankCredittipsDTO saveMarvelsIntBankCredittips(IntBankCredittipsDTO intBankCredittips);
	
	/**
	 * 未结清贷款信息汇总信息保存
	 * 
	 * @param intBankNotQuasiCredit
	 * @return
	 */
	public IntBankNotCredittipsDTO saveMarvelsIntBankNotCredittips(IntBankNotCredittipsDTO intBankNotCredittips);
	
	/**
	 * 未销户贷记卡信息汇总保存
	 * 
	 * @param intBankNotQuasiCredit
	 * @return
	 */
	public IntBankNotPinshouseholdsDTO saveMarvelsIntBankNotPinshouseholds(IntBankNotPinshouseholdsDTO intBankNotPinshouseholds);
	
	/**
	 * 保存未销户准贷记卡信息
	 * 
	 * @param intBankNotQuasiCredit
	 * @return
	 */
	public IntBankNotQuasiCreditDTO saveMarvelsIntBankNotQuasiCredit(IntBankNotQuasiCreditDTO intBankNotQuasiCredit);
	
	/**
	 * 对外贷款担保信息汇总保存
	 * 
	 * @param intBankNotQuasiCredit
	 * @return
	 */
	public IntBankGuaranteeCountDTO saveMarvelsIntBankGuaranteeCount(IntBankGuaranteeCountDTO intBankGuaranteeCount);
	
	/**
	 * 新增贷款信息
	 * 
	 * @param intBankCreditPaymentRecords
	 * @return
	 */
	public List<IntBankCreditPaymentRecordsDTO> saveMarvelsIntBankCreditPaymentRecord(IntBankCreditPaymentRecordsDTO intBankCreditPaymentRecord);
	
	/**
	 * 提交-更新数据
	 * @return
	 */
	public MarvelsResultDTO saveMarvelsCreditReport(String loanId);
}
